﻿using System;

namespace OhioState.Graphics.Proxy
{
    /// <summary>
    /// PreIntegrated TransferFunction Proxy Class
    /// </summary>
    [Serializable]
    public class TransferFuncPreIntegratedProxy : Texture2D
    {
        #region Constructors
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="transferFunction">transfer function</param>
        public TransferFuncPreIntegratedProxy(TransferFunction transferFunction)
            : this(transferFunction.Name + "PreIntegrated", transferFunction)
        {
        }
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="name">Name</param>
        /// <param name="transferFunction">TF</param>
        public TransferFuncPreIntegratedProxy(string name, TransferFunction transferFunction)
            : base(name, transferFunction.Width, transferFunction.Width, transferFunction.TexelType)
        {
            this.BaseTransferFunction = transferFunction;
        }
        #endregion
        /// <summary>
        /// Get Set Accessors for the Transfer function
        /// </summary>
        public TransferFunction BaseTransferFunction { get; private set; }
        /// <summary>
        /// Output a texture buffer array and the size.
        /// </summary>
        /// <param name="texels">texture array output</param>
        public override void GetTexture(out byte[,,] texels)
        {
            texels = null;
        }
        //public override byte[] GetTextureByte(out int xDim, out int yDim)
        //{
        //    xDim = 1; yDim = 1;
        //    return null;
        //}
    }
}
